package com.taxshare.tools.util;

import java.util.HashMap;
import java.util.Map;

public class AreaCodeUtil {
    public Map<String, String> getAreaPort() {
        Map<String, String> mpp = new HashMap();
        mpp.put("65", "7001");
        mpp.put("64", "6001");
        mpp.put("63", "443");
        mpp.put("62", "443");
        mpp.put("61", "7002");
        mpp.put("54", "1002");
        mpp.put("53", "7001");
        mpp.put("52", "5002");
        mpp.put("51", "7001");
        mpp.put("50", "444");
        mpp.put("46", "443");
        mpp.put("45", "9013");
        mpp.put("4403", "8001");
        mpp.put("44", "7001");
        mpp.put("43", "7001");
        mpp.put("42", "443");
        mpp.put("41", "443");
        mpp.put("37", "7002");
        mpp.put("36", "7001");
        mpp.put("35", "443");
        mpp.put("34", "7001");
        mpp.put("33", "7777");
        mpp.put("32", "7001");
        mpp.put("31", "443");
        mpp.put("23", "7005");
        mpp.put("22", "4430");
        mpp.put("21", "9002");
        mpp.put("15", "17001");
        mpp.put("14", "443");
        mpp.put("13", "7001");
        mpp.put("12", "443");
        mpp.put("11", "443");
        return mpp;
    }

    public Map<String, String> getAreaIP() {
        Map<String, String> mpp = new HashMap();
        mpp.put("65", "222.82.232.193");
        mpp.put("64", "61.133.192.42");
        mpp.put("63", "110.166.244.4");
        mpp.put("62", "61.178.20.147");
        mpp.put("61", "219.144.206.62");
        mpp.put("54", "220.182.3.132");
        mpp.put("53", "www.yngs.gov.cn");
        mpp.put("52", "skfp.gzgs12366.gov.cn");
        mpp.put("51", "118.112.187.42");
        mpp.put("50", "218.70.65.77");
        mpp.put("46", "220.174.209.83");
        mpp.put("45", "222.216.1.203");
        mpp.put("4403", "zzskp.szgs.gov.cn");
        mpp.put("44", "skfp.gd-n-tax.gov.cn");
        mpp.put("43", "119.39.5.172");
        mpp.put("42", "fp.hb-n-tax.gov.cn");
        mpp.put("41", "tysl.12366.ha.cn");
        mpp.put("37", "218.57.142.46");
        mpp.put("36", "117.40.128.137");
        mpp.put("35", "125.77.110.12");
        mpp.put("34", "fwsk.965432.com");
        mpp.put("33", "www.zjgsfp.cn");
        mpp.put("32", "221.226.83.20");
        mpp.put("31", "skfp.tax.sh.gov.cn");
        mpp.put("23", "hljgswsbs.gov.cn");
        mpp.put("22", "222.161.58.93");
        mpp.put("21", "wsrz.tax.ln.cn");
        mpp.put("15", "zzsfp.nm-n-tax.gov.cn");
        mpp.put("14", "202.99.194.28");
        mpp.put("13", "zzsfp.he-n-tax.gov.cn");
        mpp.put("12", "zzssjb.tjsat.gov.cn");
        mpp.put("11", "tysl.bjtax.gov.cn");
        return mpp;
    }

    public Map<String, String> getAreaCode() {
        Map<String, String> mpp = new HashMap();
        mpp.put("65", "新疆");
        mpp.put("64", "宁夏");
        mpp.put("63", "青海");
        mpp.put("62", "甘肃");
        mpp.put("61", "陕西");
        mpp.put("54", "西藏");
        mpp.put("53", "云南");
        mpp.put("52", "贵州");
        mpp.put("51", "四川");
        mpp.put("50", "重庆");
        mpp.put("46", "海南");
        mpp.put("45", "广西");
        mpp.put("4403", "深圳");
        mpp.put("44", "广东");
        mpp.put("43", "湖南");
        mpp.put("42", "湖北");
        mpp.put("41", "河南");
        mpp.put("37", "山东");
        mpp.put("3702", "青岛");
        mpp.put("36", "江西");
        mpp.put("35", "福建");
        mpp.put("3502", "厦门");
        mpp.put("34", "安徽");
        mpp.put("33", "浙江");
        mpp.put("3302", "宁波");
        mpp.put("32", "江苏");
        mpp.put("31", "上海");
        mpp.put("23", "黑龙江");
        mpp.put("22", "吉林");
        mpp.put("21", "辽宁");
        mpp.put("2102", "大连");
        mpp.put("15", "内蒙古");
        mpp.put("14", "山西");
        mpp.put("13", "河北");
        mpp.put("12", "天津");
        mpp.put("11", "北京");
        return mpp;
    }

    public Map<String, String> getAreaCode2() {
        Map<String, String> mpp = new HashMap();
        mpp.put("65", "新   疆");
        mpp.put("64", "宁   夏");
        mpp.put("63", "青   海");
        mpp.put("62", "甘   肃");
        mpp.put("61", "陕   西");
        mpp.put("54", "西   藏");
        mpp.put("53", "云   南");
        mpp.put("52", "贵   州");
        mpp.put("51", "四   川");
        mpp.put("50", "重   庆");
        mpp.put("46", "海   南");
        mpp.put("45", "广   西");
        mpp.put("4403", "深   圳");
        mpp.put("44", "广   东");
        mpp.put("43", "湖   南");
        mpp.put("42", "湖   北");
        mpp.put("41", "河   南");
        mpp.put("37", "山   东");
        mpp.put("3702", "青   岛");
        mpp.put("36", "江   西");
        mpp.put("35", "福   建");
        mpp.put("3502", "厦   门");
        mpp.put("34", "安   徽");
        mpp.put("33", "浙   江");
        mpp.put("3302", "宁   波");
        mpp.put("32", "江   苏");
        mpp.put("31", "上   海");
        mpp.put("23", "黑 龙 江");
        mpp.put("22", "吉   林");
        mpp.put("21", "辽   宁");
        mpp.put("2102", "大   连");
        mpp.put("15", "内 蒙 古");
        mpp.put("14", "山   西");
        mpp.put("13", "河   北");
        mpp.put("12", "天   津");
        mpp.put("11", "北   京");
        return mpp;
    }

    public Map<String, String> getFplx() {
        Map<String, String> mpp = new HashMap();
        mpp.put("01", "增值税专用发票");
        mpp.put("02", "货运运输业增值税专用发票");
        mpp.put("03", "机动车增值税专用发票");
        mpp.put("04", "增值税普通发票");
        mpp.put("10", "机动车增值税专用发票");
        mpp.put("11", "增值税普通发票（卷式）");
        return mpp;
    }

    public static Map recoginizeArea(String fpdm) {
        Map<String, String> returnMap = new HashMap();
        Map<String, String> area = new AreaCodeUtil().getAreaCode();
        Map<String, String> area2 = new AreaCodeUtil().getAreaCode2();
        String fpdmStr = "";
        if (fpdm.length() == 12) {
            fpdmStr = fpdm.substring(1, 3);
            fpdmStr = getFpdmstr1(fpdmStr, fpdm);
        } else {
            fpdmStr = getFpdmstr(fpdmStr, fpdm);
        }
        returnMap.put("fpssqydm", fpdmStr);//发票所属区域代码
        returnMap.put("fpssqymc", area.get(fpdmStr));//发票所属区域名称
        returnMap.put("fpssqymc2", area2.get(fpdmStr));//发票所属区域名称
        return returnMap;
    }

    public static String getFpdmstr1(String fpdmStr, String fpdm) {
        if ("21".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(1, 5);
            if ("2102".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        if ("33".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(1, 5);
            if ("3302".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        if ("35".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(1, 5);
            if ("3502".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        if ("37".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(1, 5);
            if ("3702".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        if ("44".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(1, 5);
            if ("4403".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        return fpdmStr;
    }

    public static String getFpdmstr(String fpdmStr, String fpdm) {
        if ("21".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(0, 4);
            if ("2102".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        if ("33".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(0, 4);
            if ("3302".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        if ("35".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(0, 4);
            if ("3502".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        if ("37".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(0, 4);
            if ("3702".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        if ("44".equals(fpdmStr)) {
            String fpdmStr2 = fpdm.substring(0, 4);
            if ("4403".equals(fpdmStr2)) {
                fpdmStr = fpdmStr2;
            }
        }
        return fpdmStr;
    }

    public static Map getAreaIpIpPort(String fpdm) {
        Map<String, String> returnMap = new HashMap();
        Map<String, String> portMap = new AreaCodeUtil().getAreaPort();
        Map<String, String> ipMap = new AreaCodeUtil().getAreaIP();
        String fpdmStr = "";
        if (fpdm.length() == 12) {
            fpdmStr = fpdm.substring(1, 3);
            if ("44".equals(fpdmStr)) {
                String fpdmStr2 = fpdm.substring(1, 5);
                if ("4403".equals(fpdmStr2)) {
                    fpdmStr = fpdmStr2;
                }
            }
        } else {
            fpdmStr = fpdm.substring(0, 2);
            if ("44".equals(fpdmStr)) {
                String fpdmStr2 = fpdm.substring(0, 4);
                if ("4403".equals(fpdmStr2)) {
                    fpdmStr = fpdmStr2;
                }
            }
        }
        returnMap.put("fpssqyip", ipMap.get(fpdmStr));
        returnMap.put("fpssqydk", portMap.get(fpdmStr));
        return returnMap;
    }


}
